home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JTree$DynamicUtilTreeNode.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  1.9 KB  |  93 lines

  1. package javax.swing;
  2.  
  3. import java.util.Enumeration;
  4. import java.util.Hashtable;
  5. import java.util.Vector;
  6. import javax.swing.tree.DefaultMutableTreeNode;
  7. import javax.swing.tree.TreeNode;
  8.  
  9. public class JTree$DynamicUtilTreeNode extends DefaultMutableTreeNode {
  10.    protected boolean hasChildren;
  11.    protected Object childValue;
  12.    protected boolean loadedChildren = false;
  13.  
  14.    public JTree$DynamicUtilTreeNode(Object var1, Object var2) {
  15.       super(var1);
  16.       this.childValue = var2;
  17.       if (var2 != null) {
  18.          if (var2 instanceof Vector) {
  19.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  20.          } else if (var2 instanceof Hashtable) {
  21.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  22.          } else if (var2 instanceof Object[]) {
  23.             ((DefaultMutableTreeNode)this).setAllowsChildren(true);
  24.          } else {
  25.             ((DefaultMutableTreeNode)this).setAllowsChildren(false);
  26.          }
  27.       } else {
  28.          ((DefaultMutableTreeNode)this).setAllowsChildren(false);
  29.       }
  30.  
  31.    }
  32.  
  33.    public Enumeration children() {
  34.       if (!this.loadedChildren) {
  35.          this.loadChildren();
  36.       }
  37.  
  38.       return super.children();
  39.    }
  40.  
  41.    public static void createChildren(DefaultMutableTreeNode var0, Object var1) {
  42.       if (var1 instanceof Vector) {
  43.          Vector var2 = (Vector)var1;
  44.          int var3 = 0;
  45.  
  46.          for(int var4 = var2.size(); var3 < var4; ++var3) {
  47.             var0.add(new JTree$DynamicUtilTreeNode(var2.elementAt(var3), var2.elementAt(var3)));
  48.          }
  49.       } else if (var1 instanceof Hashtable) {
  50.          Hashtable var5 = (Hashtable)var1;
  51.          Enumeration var7 = var5.keys();
  52.  
  53.          while(var7.hasMoreElements()) {
  54.             Object var9 = var7.nextElement();
  55.             var0.add(new JTree$DynamicUtilTreeNode(var9, var5.get(var9)));
  56.          }
  57.       } else if (var1 instanceof Object[]) {
  58.          Object[] var6 = var1;
  59.          int var8 = 0;
  60.  
  61.          for(int var10 = var6.length; var8 < var10; ++var8) {
  62.             var0.add(new JTree$DynamicUtilTreeNode(var6[var8], var6[var8]));
  63.          }
  64.       }
  65.  
  66.    }
  67.  
  68.    public TreeNode getChildAt(int var1) {
  69.       if (!this.loadedChildren) {
  70.          this.loadChildren();
  71.       }
  72.  
  73.       return super.getChildAt(var1);
  74.    }
  75.  
  76.    public int getChildCount() {
  77.       if (!this.loadedChildren) {
  78.          this.loadChildren();
  79.       }
  80.  
  81.       return super.getChildCount();
  82.    }
  83.  
  84.    public boolean isLeaf() {
  85.       return ((DefaultMutableTreeNode)this).getAllowsChildren() ^ true;
  86.    }
  87.  
  88.    protected void loadChildren() {
  89.       this.loadedChildren = true;
  90.       createChildren(this, this.childValue);
  91.    }
  92. }
  93.